/*
 * @Author: pengtianrui 2276608413@qq.com
 * @Date: 2024-07-19 14:42:56
 * @LastEditors: 武兴创 superjava@vip.qq.com
 * @LastEditTime: 2024-08-28 17:46:54
 * @FilePath: \SGFEM\DataStructure\FEM\Constraint\include\MPCADDData.h
 * @Description: 将不同sid的MPC形成一个新的集合
 * MPCADD
 */

#pragma once

#include <vector>

#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/SetBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** @brief MPC数据编号集合
 *
 */
struct DECLSPEC MPCADDData : public SetBase
{
    SG::DataStructure::Common::Id              m_domainId = 0;
    std::vector<SG::DataStructure::Common::Id> m_subSets;  //< 子集编号
};

/// @brief 比较两个MPCADDData是否相等
/// @param lhs
/// @param rhs
/// @return
DECLSPEC bool operator== (const MPCADDData& lhs, const MPCADDData& rhs);

/// @brief 比较两个MPCADDData的大小
/// @param SGDataA
/// @param SGDataB
/// @return
DECLSPEC bool operator< (const MPCADDData& SGDataA, const MPCADDData& SGDataB);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE